Communication system, communication device and processing method therefor

ABSTRACT

A master generates a session key, receives public keys from a plurality of slaves, encrypts the session key using the individual public keys, transmits the encrypted session key to the plurality of slaves, encrypts data using the encrypted session key, and sends it to the plurality of slaves. A plurality of slaves transmit public keys to a master device, receive and decrypt a session key encrypted using individual public keys, receive data encrypted using the session key from the master, and decrypt it using the decrypted session key.

This is a continuation of U.S. patent application Ser. No. 12/162,835, filed Jul. 31, 2008, and allowed on Feb. 14, 2013, which is a 371 of International Application No. PCT/JP2007/055015, filed Mar. 7, 2007.

TECHNICAL FIELD

The present invention relates to a communication system including a master device and a plurality of slave devices, to a communication device, and to a processing method therefor.

BACKGROUND ART

When using wireless LANs conforming to the IEEE 802.11 standard, users have to set wireless communication parameters, such as network identifiers (ESSID), encryption methods, cryptographic keys (encryption keys), authentication methods, authentication keys, etc. Because of the complexity of these setting operations, methods have been proposed for automatically performing them between terminals. For instance, a method for automatic transfer of wireless parameter settings between an access point (relay station) and a station (terminal) from the access point to the station by means of a simple operation, etc. has been implemented as an actual product.

Moreover, in recent years, communication is also more frequently conducted over so-called ad hoc networks, in which terminals communicate with one another directly over a wireless LAN without passing through an access point. The demand for communication between a plurality of terminals on such ad hoc networks is on the increase and methods for automatic setting of parameters on a plurality of terminals are required (see Patent document 1: U.S. Pre-Grant Publication No. 2002/147,819 (Japanese Patent Laid-Open No. 2002-359623)).

In conventional automatic parameter setting methods, a master device such as an access point, which operates as a master, has a set made up of a public key and a private key, and slave devices, which function as slaves, generate session keys. The setting of wireless parameters is initiated when the master device transmits a public key to the slave devices. Here, when the slave devices receive the public key, they encrypt session keys using the public key and transmit them to the master device.

On the other hand, when the master device receives a session key encrypted using the public key, it uses the private key for decryption. When the decryption is over, wireless parameters are encrypted using the session key and transmitted to the slave device. By doing so, when the slave device receives the wireless parameters encrypted using the session key, it uses the session key for decryption. When the decryption is over, the slave device acquires and sets wireless parameters. Therefore, processing (heavy-load processing) involving decrypting data encrypted with a public key using a private key corresponding to the public key has been performed by the master device.

However, when wireless communication parameters are set in a plurality of devices, no other processing can be performed simultaneously when the master device performs such processing, and therefore, master device functionality ends up being occupied by a single slave device. Therefore, other slave devices must wait until the processing by the master device is complete, and the time it takes for all the slave devices to complete wireless parameter setting is prolonged depending on the number of times the master device decrypts the session keys.

DISCLOSURE OF INVENTION

It is an object of the present invention to carry out communication parameter exchange between a plurality of devices at high speed.

According to one mode of the present invention, in order to accomplish the above-mentioned object, there is provided a communication system including a master device and a plurality of slave devices, wherein the master device comprises: a generation unit that generates a session key; a unit that receives public keys from the slave devices, encrypts the session key using the public keys and transmits the encrypted session key to the slave devices; and a data transmission unit that encrypts data using the session key and transmits the encrypted data to the slave devices; and each slave device comprises: a decryption unit that transmits the public key to the master device, receives the session key encrypted using the public key and decrypts it; and a data decryption unit that receives data encrypted using the session key from the master device and decrypts it using the decrypted session key.

Moreover, according to one mode of the present invention, there is provided a communication device supplying common data to a plurality of devices, comprising: a generation unit that generates a session key; a reception unit that receives public keys from the devices; a first encryption unit that encrypts the session key using the public keys corresponding to the devices, received by the reception unit; a first transmission unit that transmits to the devices the session key encrypted using the first encryption unit; a second encryption unit that encrypts the common data using the session key; and a second transmission unit that transmits to the devices the common data encrypted using the second encryption unit.

Moreover, according to one mode of the present invention, there is provided a processing method for a communication system including a master device and a plurality of slave devices, comprising: a generation step, wherein the master device generates a session key; a public key transmission step, wherein each slave device, which has a set made up of a public key and a private key, transmits the public key to the master device; a public key reception step, wherein the master device receives the public keys from the slave devices; a session key transmission step, wherein the master device encrypts the session key using the public keys of the slave devices and transmits the encrypted session key to the slave devices; a session key reception step, wherein the slave devices receive the encrypted session key from the master device; a session key decryption step, wherein the slave devices decrypt the encrypted session key using the private keys; a data transmission step, wherein the master device encrypts data using the session key and transmits it to the slave devices; a data reception step, wherein the slave devices receive the encrypted data from the master device; and a data decryption step, wherein the slave devices decrypt the encrypted data using the decrypted session keys.

Moreover, according to one mode of the present invention, there is provided a processing method for a communication device supplying common data to a plurality of devices, comprising: a generation step of generating a session key; a reception step of receiving public keys from the devices; a first encryption step of encrypting the session key using the public keys corresponding to the devices, received in the reception step; a first transmission step of transmitting to the devices the session key encrypted in the first encryption step; a second encryption step of encrypting the common data using the session key; and a second transmission step of transmitting to the devices the common data encrypted in the second encryption step.

Further features of the present invention will become apparent from the following description of exemplary embodiments with reference to the attached drawings.

BRIEF DESCRIPTION OF DRAWINGS

FIG. 1 is a diagram illustrating an automatic wireless communication parameter setting sequence in the one-to-one communication mode.

FIG. 2 is a diagram illustrating an automatic wireless communication parameter setting sequence in the multiple device communication mode.

FIG. 3 is a diagram illustrating an exemplary system configuration used in Embodiment 1.

FIG. 4 is a diagram illustrating an automatic wireless communication parameter setting sequence used in the multiple device communication mode in Embodiment 1.

FIG. 5 is a flow chart illustrating master processing in Embodiment 1.

FIG. 6 is a flow chart illustrating slave processing in Embodiment 1.

FIG. 7 is a diagram illustrating an automatic wireless communication parameter setting sequence used in the multiple device communication mode in Embodiment 2.

FIG. 8 is a flow chart illustrating master processing in Embodiment 2.

FIG. 9 is a diagram illustrating an automatic wireless communication parameter setting sequence used in the multiple device communication mode in a variation of Embodiment 2.

FIG. 10 is a flow chart illustrating master processing in a variation of Embodiment 2.

FIG. 11 is a diagram illustrating an automatic wireless communication parameter setting sequence used in the multiple device communication mode in Embodiment 3.

FIG. 12 is a flow chart illustrating master processing in Embodiment 3.

FIG. 13 is a flow chart illustrating slave processing supporting only conventional wireless communication parameter exchange methods.

BEST MODE FOR CARRYING OUT THE INVENTION

The best mode for carrying out the invention is explained in detail below by referring to the drawings.

[One-To-One Communication Mode]

First of all, the method of automatic wireless communication parameter setting will be explained with reference to FIG. 1 for a case, wherein two digital cameras equipped with wireless communication functionality and having a one-to-one communication mode and a multiple device communication mode carry out one-to-one communication. It should be noted that wireless communication parameters are parameters required for wireless communication, and are all of or at least one of network identifiers (ESSID), encryption methods, cryptographic keys (encryption keys), authentication methods, authentication keys, and so on.

The wireless devices are pre-set to have the same wireless communication parameters and the network used for communication parameter setting is constructed using these wireless communication parameters. In addition, a master/slave role is assigned to each of the wireless devices, with the master collecting information on the number of slaves, as well as the MAC addresses and automatic parameter setting versions of the slaves.

FIG. 1 is a diagram illustrating an automatic wireless communication parameter setting sequence in the one-to-one communication mode. First of all, a device operating as a slave generates a session key (S101). Here, a device operating as a master encloses its own public key in a “Public Key Offer” and transmits it to the slave by unicast (S102). The slave receiving this “Public Key Offer” retrieves the master's public key and encrypts the session key using the public key. The slave then encloses the encrypted session key in a “Temporal Key Offer” and transmits it by unicast to the master (S103).

On the other hand, the master receiving the “Temporal Key Offer” retrieves the session key encrypted using its public key and decrypts it using its private key (S104). Because the process of decryption takes time, the slave has to wait for a while. Subsequently, when the decryption is complete, the master encrypts wireless communication parameters using the session key, encloses them in a “Winfo Offer” and transmits it to the slave (S105). On the other hand, when the slave receives the “Winfo Offer”, it retrieves the wireless communication parameters encrypted using the session key and acquires the wireless communication parameters by decrypting them using the session key. A “Winfo Finish” is then transmitted by unicast to the master (S106). After this the master sets the wireless communication parameters sent to the slave to form a network for data communication. Moreover, the slave also sets the wireless communication parameters received from the master and connects to the network for data communication.

[Multiple Device Communication Mode]

Next, the method of automatic wireless communication parameter setting will be explained with reference to FIG. 2 for a case with three wireless devices having a one-to-one communication mode and a multiple device communication mode, in which the above-described method used in the one-to-one communication mode is applied to the multiple device communication mode. It should be noted that the master and slave roles are the same as in the above-described case, in which the one-to-one communication mode was used.

FIG. 2 is a diagram illustrating an automatic wireless communication parameter setting sequence in the multiple device communication mode. First of all, a slave (device B) generates a session key 1 (S201) and another slave (device C) generates a session key 2 (S202). Here, the master (device A) encloses its public key in a “Public Key Offer” and transmits it to a slave (device B) by unicast (S203). The slave (device B) that receives the “Public Key Offer” retrieves the public key of the master (device A) and encrypts the session key using the public key. The slave (device B) then encloses the encrypted session key in a “Temporal Key Offer” and transmits it by unicast to the master (device A) (S204).

On the other hand, the master (device A) receiving the “Temporal Key Offer” retrieves the session key 1 encrypted using its public key and decrypts it using its private key (S205). Because the process of decryption takes time, the slave (device B) has to wait for a while. Subsequently, when the decryption is complete, the master (device A) encrypts wireless communication parameters using the session key 1, encloses them in a “Winfo Offer” and transmits them to the slave (device B) (S206). On the other hand, when the slave (device B) receives the “Winfo Offer”, it retrieves the wireless communication parameters encrypted using the session key 1 and acquires the wireless communication parameters by decrypting them using the session key 1. A “Winfo Finish” is then transmitted by unicast to the master (device A) (S207).

Here, when the setting of wireless communication parameters for the slave (device B) is complete, the master (device A) initiates wireless communication parameter with the other slave (device C). The session between the master (device A) and slave (device C) is identical to the session with the other slave (device B), and its explanation is omitted. It should be noted that S203-S207 correspond to S208 to S212.

In this manner, when the one-to-one communication mode is applied to the multiple device communication mode, the master is occupied by the decryption processing of session keys encrypted using the public keys and the processing of wireless parameter setting has to be carried out consecutively, on a device-by-device basis. For this reason, the time it takes to process wireless communication parameter setting for all the slaves increases in proportion to the number of slave devices.

Thus, in this configuration, the master generates a session key and the slaves transmit the slaves' public keys to the master so as to enable the slaves to carry out the decryption processing of the session key encrypted using the public keys.

Embodiment 1

Next, FIG. 3 to FIG. 6 will be used to explain the system configuration and processing used when the master generates session keys and a plurality of slaves transmit the public keys of the slaves to the master in order to carry out wireless communication parameter setting. In Embodiment 1, explanations are provided regarding a case, in which wireless communication parameter setting is carried out using respective different session keys for a plurality of slaves.

FIG. 3 is a diagram illustrating an exemplary system configuration used in Embodiment 1. In FIG. 3, numeric 301 is a device A (digital camera), which operates as a master, possesses wireless communication functionality, and has the ability to supply parameters. The device A is comprised of a control unit (CPU) 301 a, a memory 301 b, and a wireless unit 301 c. The control unit 301 a executes a program stored in the memory 301 b to perform various operation described later. The memory 301 b stores the program executed by the control unit 301 a. The wireless unit 301 c performs the wireless communication according to the control of the control unit 301 a. Numeric 302 is a device B (digital camera), which operates as a slave, possesses wireless communication functionality, and has the ability to accept parameters. The device B is comprised of a control unit (CPU) 302 a, a memory 302 b, and a wireless unit 302 c. The control unit 302 a executes a program stored in the memory 302 b to perform various operation described later. The memory 301 b stores the program executed by the control unit 302 a. The wireless unit 302 c performs the wireless communication according to the control of the control unit 302 a. Numeric 303 is a device C (digital camera), which operates as a slave and has the same functionality as device B. The device C is comprised of a control unit (CPU) 303 a, a memory 303 b, and a wireless unit 303 c. The control unit 303 a executes a program stored in the memory 303 b to perform various operation described later. The memory 303 b stores the program executed by the control unit 303 a. The wireless unit 303 c performs the wireless communication according to the control of the control unit 303 a. Let us consider an example, in which the master 301 and slaves 302, 303 construct a network for communication parameter setting and wireless parameters used to construct the network for data communication between the above-mentioned three devices are communicated from the master 301 to the slaves 302, 303. Here, the master and slave roles are as described above, and their explanation is omitted.

FIG. 4 is a diagram illustrating an automatic wireless communication parameter setting sequence used in the multiple device communication mode in Embodiment 1. FIG. 5 is a flow chart illustrating master processing in Embodiment 1. FIG. 6 is a flow chart illustrating slave processing in Embodiment 1.

First of all, the master 301 generates session keys according to the number of slaves in the newly created network (S501). Specifically, it generates a session key 1 as a common key shared with slave 302 (S401) and a session key 2 as a common key shared with slave 303 (S402). Upon generation of the session keys according to the number of devices, operation is halted until an arbitrary packet is received (S502).

Here, the slave 302 encloses its public key in a “Public Key Offer” packet (S403) and transmits it to the master 301 by unicast (S601). Operation is then halted (S602) until a “Temporal Key Offer” (S404) is received from the master 301.

On the other hand, when the master 301 receives a packet (“YES” in S502), it determines whether the packet is a “Public Key Offer” (S503). Here, in case of a “Public Key Offer” from the slave 302 (“YES” in S503), a public key is retrieved from the packet and the session key 1 is encrypted using the public key (S504). Here, the master 301 encloses the encrypted session key 1 in a “Temporal Key Offer” (S404) and transmits it to the slave 302 by unicast (S505). Operation is then halted until an arbitrary packet is received (S502).

Moreover, when the slave 302, whose operation is halted, receives a “Temporal Key Offer” from the master 301 (“YES” in S602), it retrieves the session key 1 encrypted using its public key and decrypts it using its private key (S603). Then, when the decryption is complete, it transmits a “Temporal Key Finish” (S409) to the master 301 by unicast (S604).

The decryption processing by the slave 302, however, requires several seconds, during which time the slave 303 encloses its public key in a “Public Key Offer” (S406) and transmits it to the master 301 by unicast.

On the other hand, when the master 301 receives the “Public Key Offer” (S406), it retrieves the public key and encrypts the session key 2 using the public key (S504). The encrypted session key 2 is then enclosed in a “Temporal Key Offer” (S407) and transmitted to the slave 303 by unicast (S505). As a result, the slave 303 retrieves the session key 2 encrypted using its public key and decrypts it using its private key (S408, S603). Then, when the decryption is complete, it transmits a “Temporal Key Finish” (S412) to the master 301 by unicast (S604).

In addition, when the master 301 receives the “Temporal Key Finish” from the slave 302 (“YES” in S506), it encrypts wireless communication parameters using the session key 1 (S507). When the encryption is complete, the encrypted wireless communication parameters are enclosed in a “Winfo Offer” (S410) and transmitted to the slave 302 by unicast (S508).

As a result, when the slave 302 receives the “Winfo Offer” (“YES” in S605), it retrieves the wireless communication parameters encrypted using the session key 1 and performs decryption using the session key 1 (S606). Then, the slave 302 transmits a “Winfo Finish” (S411) to the master 301 by unicast (S407). On the other hand, when the master 301 receives the “Winfo Finish” from the slave 302 (“YES” in S509), it determines whether it has been received from all the slaves or not. Here, processing goes back to waiting for a packet because it has not been received from all the slaves.

In addition, when the master 301 receives the “Temporal Key Finish” from the slave 303 (“YES” in S506), it encrypts wireless communication parameters using the session key 2 (S507). When the encryption is complete, the encrypted wireless communication parameters are enclosed in a “Winfo Offer” (S413) and transmitted to the slave 303 by unicast (S508).

As a result, when the slave 303 receives the “Winfo Offer” (“YES” in S605), it retrieves the wireless communication parameters encrypted using the session key 2 and performs decryption using the session key 2 (S606). The slave 303 then transmits a “Winfo Finish” (S414) to the master 301 by unicast (S407). On the other hand, when the master 301 receives the “Winfo Finish” from the slave 303 (“YES” in S509), it determines whether it has been received from all the slaves or not. As a result, processing terminates because it has been received from all the slaves. After receiving a “Winfo Finish” from all the slaves, the master 301 sets the wireless communication parameters sent to the slaves and forms a network for data communication. Moreover, the slaves also set the wireless communication parameters received from the master and connect to the network for data communication.

Although the explanations above were provided using an example of a system composed of a master 301 and two slaves 302 and 303, the present invention is not limited thereto and can be applied to cases with a larger number of slaves.

Moreover, because the immediately preceding process terminates sequentially, the timing at which the “Public Key Offer” is transmitted by the slave can be based on a method, in which it is transmitted upon lapse of a fixed time period after the termination of the immediately preceding process and a method, in which it is sent after waiting for a randomly determined period within an appropriate range.

Embodiment 2

Next, a second embodiment of the present invention will be explained in detail by referring to drawings. In Embodiment 1, explanations were provided regarding a case, in which wireless communication parameter setting is carried out using respective different session keys for a plurality of slaves, and in Embodiment 2 regarding a case, in which it is carried out using the same session key.

It should be noted that the system configuration used for setting wireless communication parameters is the same as in Embodiment 1 illustrated in FIG. 3 and the master/slave roles are also the same.

FIG. 7 is a diagram illustrating an automatic wireless communication parameter setting sequence used in the multiple device communication mode in Embodiment 2. FIG. 8 is a flow chart illustrating master processing in Embodiment 2. It should be noted that slave processing in Embodiment 2 is the same as in Embodiment 1 explained in FIG. 6.

First of all, the master 301 generates only one session key (S701, 5801) and remains in stand-by condition until an arbitrary packet is received (S802).

Here, in the same manner as in Embodiment 1, the slave 302 encloses its public key in a “Public Key Offer” packet (S702) and transmits it to the master 301 by unicast. Subsequently, the slave 302 receives a “Temporal Key Offer” from the master 301 (S703) and decrypts the encrypted session key using its private key (S704). When the decryption is complete, it transmits a “Temporal Key Finish” (S708) to the master 301 by unicast. In addition, processing by the slave 303 is identical to Embodiment 1.

On the other hand, when the master 301 receives a packet (“YES” in S802), it determines whether the packet is a “Public Key Offer” (S803). Here, in case of a “Public Key Offer” from the slave 302 (“YES” in S803), a public key is retrieved from the packet and a session key is encrypted using the public key (S804). The master 301 encloses the encrypted session key in a “Temporal Key Offer” (S703) and transmits it to the slave 302 by unicast (S805). Operation is then halted until an arbitrary packet is received (S802).

Next, when the master 301 receives a “Temporal Key Finish” from the slave (“YES” in S806), it is determined whether it is received for the first time (S807). Here, if it is received for the first time, wireless communication parameters are encrypted using the session key and the encrypted session key is cached in the memory of the master 301 (S808). Subsequently, when the encryption is complete, the encrypted wireless communication parameters are enclosed in a “Winfo Offer” and transmitted to the slave that sent the “Temporal Key Finish” by unicast (S809). In this example, a “Temporal Key Finish” is received from the slave 302 (S708) and a “Winfo Offer” (S709) is transmitted.

In addition, if it is not the first reception, the cached encrypted wireless communication parameters are enclosed in a “Winfo Offer” and transmitted to the slave that sent the “Temporal Key Finish”. Here, a “Temporal Key Finish” is received from the slave 303 (S711) and a “Winfo Offer” (S712) is transmitted.

It should be noted that processing performed by the slave that receives the “Winfo Offer” from the master 301 is identical to that of Embodiment 1.

Processing performed (“YES” in 5810, 5811) subsequently when the master 301 receives a “Winfo Finish” from the slaves (S710 or 5713) is identical to that of Embodiment 1.

In this manner, the use of a single session key enables prevention of excessive consumption of memory area by session keys in built-in devices with low-capacity memory units and will make it possible to cope with redundant key lengths in the future.

[Variations]

Although in Embodiments 1 and 2 the master 301 transmits “Winfo Offers” to the slaves 302 and 303 individually using unicast, they can be transmitted by multicast as well. Doing so makes it possible to save wireless bandwidth.

Here, a variation involving transmission of “Winfo Offers” by multicast is explained using FIG. 9 and FIG. 10.

FIG. 9 is a diagram illustrating an automatic wireless communication parameter setting sequence used in the multiple device communication mode in a variation of Embodiment 2. FIG. 10 is a flow chart illustrating master processing in a variation of Embodiment 2. It should be noted that because it is basically identical to Embodiment 2, explanations below focus on its differences from Embodiment 2.

During processing by the master 301, when a “Temporal Key Finish” is received from the slave for the first time (“YES” in S1007), wireless communication parameters are encrypted using the session key (S1008). After that, it is determined whether a “Temporal Key Finish” has been received from all the slaves (S1009). This determination is made, for instance, by providing a counter and counting the number of times it is received from the slaves. Then, if it has been received from all the slaves, a “Winfo Offer” (S910) is transmitted by multicast (S1010).

Embodiment 3

Next, a third embodiment of the present invention will be explained in detail by referring to drawings. In Embodiment 3, explanations are provided regarding a case, in which the slaves include those which only support conventional wireless communication parameter exchange methods.

It should be noted that the system configuration used for setting wireless communication parameters is the same as in Embodiment 1 illustrated in FIG. 3. Here, the master 301 detects the number of slaves 302 (e.g., L slaves) capable of using the above-described method of setting wireless communication parameters and the number of slaves 303 (e.g., M slaves) capable of using only conventional methods of exchanging wireless communication parameters.

FIG. 11 is a diagram illustrating an automatic wireless communication parameter setting sequence used in the multiple device communication mode in Embodiment 3. FIG. 12 is a flow chart illustrating master processing in Embodiment 3. FIG. 13 is a flow chart illustrating slave processing supporting only conventional wireless communication parameter exchange methods.

It should be noted that the sequence used between the master 301 and slaves 302, which are capable of using the above-described method of setting wireless communication parameters, is identical to Embodiment 1.

First of all, the master 301 generates L session keys (S1101, 51201) and remains in stand-by condition until an arbitrary packet is received (S1202). S1203 to S1209 are identical to the processing of the master 301 in S503 to S509 of Embodiment 1 and S1103 to S1108 of the sequence correspond to S403 to S405 and S409 to S411 illustrated in FIG. 4.

When the master 301 receives a “Winfo Finish” (S1108) (“YES” in S1209), it is determined whether it has been received L times (S1210). Here, if the result is YES, wireless communication parameters are exchanged with M slaves 303 using conventional methods (S1211).

First of all, the slave 303 generates a single session key (S1102, 51301) and receives a “Public Key Offer” (S1109) from the master 301 (S1302). Next, the public key of the master 301 is retrieved from the received packet and the session key is encrypted using the public key (S1303). The encrypted session key is then enclosed in a “Temporal Key Offer” (S1110) and transmitted to the master 301 by unicast (S1304).

Next, when the slave 303 receives a “Winfo Offer” (S1112) (“YES” in S1305), it retrieves the wireless communication parameters encrypted using the session key and performs decryption using the session key (S1306). Then, when the decryption is complete, it transmits a “Winfo Finish” (S1113) to the master 301 (S1307).

Embodiment 3 makes it possible to set wireless communication parameters for all devices together even if there are devices that do not support the method of setting wireless communication parameters explained in Embodiments 1 and 2.

Because in the above-described embodiments heavy-load processing involving the decryption of wireless parameters encrypted using public keys during wireless parameter setting by a plurality of wireless devices is performed by slaves, the master can perform wireless parameter setting with a plurality of slaves in parallel. As a result, the time it takes to complete wireless parameters setting for all the slaves can be shortened.

It should be noted that the present invention can be applied to a system composed of a plurality of devices (e.g. a host computer, interface devices, readers, printers, etc.) and to a system made up of a single device (e.g. a copy machine, a fax, etc.).

In addition, recordable media used to store the program code of the software implementing the functionality of the embodiments described above are provided to a system or device and the computer of the system or device (CPU or MPU) reads and executes the program code stored on the recordable media. Needless to say, this accomplishes the object of the present invention as well.

In such a case, the program code read from the recordable media implements the functionality of the above-described embodiments and therefore the recordable media, on which the program code is stored, form part of the present invention.

The recordable media used to supply the program code may include, for example, flexible disks, hard disks, optical disks, magneto-optical disks, CD-ROMs, CD-Rs, magnetic tape, nonvolatile memory cards, ROM, etc.

Moreover, needless to say, the implementation of the functionality of the above-described embodiments is based not only on the execution of the program code read by a computer and may also include the following cases. Namely, the functionality of the above-described embodiments is implemented if an OS (operating system) etc. running on a computer partially or entirely carries out actual processing based on the instructions of the program code.

Furthermore, needless to say, the invention also includes the following case. The program code read from the recordable media is written to memory provided in expansion boards inserted in the computer or expansion units connected to the computer. Thereafter, a CPU, etc. provided in the expansion boards or expansion units partially or entirely executes actual processing based on the instructions of the program code, and the functionality of the above-described embodiments is implemented based on such processing.

The present invention can carry out communication parameter exchange between a plurality of devices at high speed and can shorten the time required for constructing a network.

While the present invention has been described with reference to exemplary embodiments, it is to be understood that the invention is not limited to the disclosed exemplary embodiments. The scope of the following claims is to be accorded the broadest interpretation so as to encompass all such modifications and equivalent structures and functions.

This application claims the benefit of Japanese Patent Application No. 2006-077400, filed Mar. 20, 2006, which is hereby incorporated by reference herein in its entirety. 

1. A communication apparatus, comprising: a providing unit that provides wireless communication parameters for performing wireless communication with the communication apparatus to another communication apparatus; a generation unit that generates an encryption key; and a selection unit that selects a method for sharing the wireless communication parameters with the other communication apparatus from between a first method, in which the encryption key generated by the generation unit is used, and a second method, which is different from the first method; wherein the providing unit provides the wireless communication parameters to the other communication apparatus using the selected one of the first method or the second method, which is selected by the selection unit in accordance with a sharing method supported by the other communication apparatus.
 2. The communication apparatus according to claim 1, wherein the second method is a method in which an encryption key generated by the other communication apparatus, which receives the wireless communication parameters, is used.
 3. The communication apparatus according to claim 1, wherein in case that there are first other communication apparatus which supports the first method and second other communication apparatus which supports the second method, the providing unit provides the wireless communication parameters to the first other communication apparatus and the second other communication apparatus together using the first method and the second method.
 4. The communication apparatus according to claim 1, wherein the first method is a method, in which the communication apparatus encrypts the encryption key using a public key from the other communication apparatus, transmits the encrypted encryption key to the other communication apparatus, and provides the wireless communication parameters encrypted using the encryption key in response to receiving from the other communication apparatus a notification indicating that completion of decryption of the encrypted encryption key.
 5. The communication apparatus according to claim 1, wherein the generation unit generates different encryption keys for each of other communication apparatuses.
 6. The communication apparatus according to claim 1, wherein the wireless communication is a wireless LAN compliant with IEEE 802.11.
 7. The communication apparatus according to claim 1, wherein the wireless communication parameters include at least one of a network identifier, an authentication method and an authentication key.
 8. A control method of a communication apparatus, comprising: generating an encryption key; selecting a method for sharing wireless communication parameters for performing wireless communication with the communication apparatus with another communication apparatus from between a first method, in which the generated encryption key is used, and a second method, which is different from the first method; and providing the wireless communication parameters to the other communication apparatus using the selected one of the first method or the second method, which is selected in accordance with a sharing method supported by the other communication apparatus.
 9. A non-transitory computer-readable storage medium storing a computer-executable program that, when executed by a computer, causes the computer to perform the method according to claim
 8. 